package w83a.w83aManager;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;

import org.apache.commons.lang.StringUtils;

import w83a.w83aBeans.W83aActasBean;
import w83a.w83aBeans.W83aCentroTrabajoBean;
import w83a.w83aBeans.W83aColegiosBean;
import w83a.w83aBeans.W83aDatosEscrutiniosBean;
import w83a.w83aBeans.W83aDocBean;
import w83a.w83aBeans.W83aListaDelegadosBean;
import w83a.w83aBeans.W83aPapeletasBean;
import w83a.w83aDAO.W83aFactoriaDAO;
import w83a.w83aDAO.w83aConstantesBD.W83aColegiosBD;
import w83a.w83aUtilidadesComunes.W83aClsConstantes;

public class W83aActa implements W83aIActa {
	
public W83aActasBean detalleActas(W83aActasBean param) throws Exception{
		
		//String version = ""; 
		/*if(!"incidencias".equals(param.getPestana())){
			if(("fichaActaIncidencias").equals(param.getPestana())){
				version=param.getVersion();
			}else{
				List listaActas = W83aFactoriaDAO.getActaDAO().buscarActaMaxVersionValidada(param);
				version = ((HashMap)listaActas.get(0)).get(W83aActasBD.versionActa).toString();
			}
		}else{
			List listaActas = W83aFactoriaDAO.getActaDAO().buscarActaMaxVersionValidadaNoValidada(param);
			version = ((HashMap)listaActas.get(0)).get(W83aActasBD.versionActa).toString();			
		}
		*/
		
		//param.setVersion(version);
		W83aActasBean acta=W83aFactoriaDAO.getActaDAO().detalleActas(param);
		W83aColegiosBean colegios = cargarColegios();
		
		param.setVersion(acta.getVersion());
		List papeletas=W83aFactoriaDAO.getActaDAO().buscarPapeletas(param);
		List delegados=W83aFactoriaDAO.getActaDAO().buscarDelegadosActa(param);//LOS DELEGADOS DE LA PESTAŅA DELEGADOS
		HashMap listaDelegados=new HashMap();
		if(!delegados.isEmpty()){
			for(int p=0;p<delegados.size();p++){
				W83aListaDelegadosBean delegado=(W83aListaDelegadosBean)delegados.get(p);
				listaDelegados.put(delegado.getDni(), delegado);
			}
		}
		acta.setListaDelegados(listaDelegados);
		acta.setListaEscrutinios(W83aFactoriaDAO.getActaDAO().buscarEscrutinioColegios(param));
		acta.setListaDiferencias(W83aFactoriaDAO.getActaDAO().buscarDiferenciaColegios(param));
		
	
		W83aDatosEscrutiniosBean escrutinio=new W83aDatosEscrutiniosBean();
		for(int i=0;i<papeletas.size();i++){
			W83aPapeletasBean papeleta=(W83aPapeletasBean)papeletas.get(i);
			if(papeleta.getColegio().equals("0"))
			{
				escrutinio.setPapeletasBlancasC1(papeleta.getBlancas());
				escrutinio.setPapeletasValidasC1(papeleta.getValidas());
				escrutinio.setPapeletasNulasC1(papeleta.getNulas());
				escrutinio.setElectoresTotalColegioC1(papeleta.getElectores());
				escrutinio.setVotantesTotalColegioC1(papeleta.getVotantes());
				escrutinio.setDelegadosTotalColegioC1(acta.getDatosEscrutinio().getDelegadosTotalColegioC1());
			}
			else
			{
				escrutinio.setPapeletasBlancasC2(papeleta.getBlancas());
				escrutinio.setPapeletasValidasC2(papeleta.getValidas());
				escrutinio.setPapeletasNulasC2(papeleta.getNulas());
				escrutinio.setElectoresTotalColegioC2(papeleta.getElectores());
				escrutinio.setVotantesTotalColegioC2(papeleta.getVotantes());
				escrutinio.setDelegadosTotalColegioC2(acta.getDatosEscrutinio().getDelegadosTotalColegioC2());
			}
			escrutinio.setDelegadosTotal(acta.getDatosEscrutinio().getDelegadosTotal());
			
		}
		acta.setDatosEscrutinio(escrutinio);
		acta.setColegios(colegios);
		if(StringUtils.isNotEmpty((String)acta.getBaja())){
			acta.setBaja(W83aClsConstantes.BAJA);
		}
		else{acta.setBaja(W83aClsConstantes.ALTA);}
		return acta;	
	}
	public W83aColegiosBean cargarColegios() throws Exception{
		List listaDatosParametros = W83aFactoriaDAO.getActaDAO().cargarColegios();
		W83aColegiosBean colegios=new W83aColegiosBean();
		for(int i=0;i<listaDatosParametros.size();i++){
			if(i==0){
				colegios.setCod1(((BigDecimal)((HashMap)listaDatosParametros.get(i)).get(W83aColegiosBD.cod)).toString());
				colegios.setDescripcion1((String)((HashMap)listaDatosParametros.get(i)).get(W83aColegiosBD.descripcion));
				colegios.setDescripcion_eu1((String)((HashMap)listaDatosParametros.get(i)).get(W83aColegiosBD.descripcion_eu));
			}
			else{
				colegios.setCod2(((BigDecimal)((HashMap)listaDatosParametros.get(i)).get(W83aColegiosBD.cod)).toString());
				colegios.setDescripcion2((String)((HashMap)listaDatosParametros.get(i)).get(W83aColegiosBD.descripcion));
				colegios.setDescripcion_eu2((String)((HashMap)listaDatosParametros.get(i)).get(W83aColegiosBD.descripcion_eu));
			}
		}
		
		return colegios;
	}
	public W83aActasBean cargarListasActas(W83aActasBean param) throws Exception {
		// TODO Auto-generated method stub
		if(param.getPestana().equals("documentos")){
			
			if(StringUtils.isNotEmpty(param.getNumActa())){
				param.setListaDocs(W83aFactoriaDAO.getActaDAO().obtenerDocsActas(param));
			}
			return param;
		}
		else if(param.getPestana().equals("impugnaciones")){
			return W83aFactoriaDAO.getActaDAO().obtenerImpugnaciones(param);
		}
		else if(param.getPestana().equals("actasParciales")){
			
			param.setListaActasParciales(W83aFactoriaDAO.getActaDAO().obtenerActasParciales(param));
			return param;
		}
		else if(param.getPestana().equals("incidencias")){
			return W83aFactoriaDAO.getActaDAO().obtenerIncidenciasActas(param);
		}
		else{
			return param;
		}
		
	}
	public java.util.HashMap buscarEscrutinio(w83a.w83aBeans.W83aActasBean param) throws Exception{
		
		
		HashMap listaEscrutinios = W83aFactoriaDAO.getActaDAO().buscarEscrutinio(param);
		
		return listaEscrutinios;	
	}
	public java.util.HashMap buscarDiferencia(w83a.w83aBeans.W83aActasBean param) throws Exception{
		
		
		HashMap listaDiferencias = W83aFactoriaDAO.getActaDAO().buscarDiferencia(param);
		
		return listaDiferencias;
	}
	public java.util.HashMap buscarListaDelegados(w83a.w83aBeans.W83aActasBean param) throws Exception{
		
		
		HashMap listaDelegados = W83aFactoriaDAO.getActaDAO().buscarListaDelegados(param);
		
		return listaDelegados;	
	}
	public java.util.List buscarCentroTrabajo(w83a.w83aBeans.W83aCentroTrabajoBean param) throws Exception{
		
		List listaCentroTrabajo = W83aFactoriaDAO.getCentroTrabajoDAO().buscarCentroTrabajo(param);
		if(!listaCentroTrabajo.isEmpty()&&listaCentroTrabajo.size()==1){
			param.setCodCentroTrabajo(((W83aCentroTrabajoBean)listaCentroTrabajo.get(0)).getCodCentroTrabajo());
//			String numActa=W83bFactoriaDAO.getActasDAO().buscarActaPorCentroTrabajo(param);
//			((W83bCentroTrabajoBean)listaCentroTrabajo.get(0)).setActa(numActa);
		}
		return listaCentroTrabajo;	
	}
	public W83aDocBean descargarDocumento(String param) throws Exception {

		return W83aFactoriaDAO.getActaDAO().descargarDocumento(param);
		
	}
}